The present invention relates to programmable transform processors and more particularly to a novel transform processing method and system that analyzes the characteristics of a signal in electrical form. The analysis techique transforms the signal into another representation such as the discrete Fourier Transform or discrete cosine transform that produce a frequency domain representation of the signal.
All linear transformations can be represented as a matrix operation (B.sub.ij) on a signal vector (a.sub.j) to produce a different vector (A.sub.j) in another domain. ##EQU1##
Fourier, Walsh, Hadamard, Haar, cosine and sine transforms are examples of linear transformations. Filtering algorithms, such as Sobel, Roberts, linear predictive coding and general correlation processes, also fall into this class. These operators are used in the analysis and recognition of speech waveforms, the bandwidth reduction and enhancement of imagery, the deconvolution of complex seismic waveforms, vibration analysis of mechanical structures and numerous other computationally intense operations.
Often these transformations have sufficient structure to be decomposed into a sequence of transforms that afford an overall reduction in computational complexity. Fourier transforms being represented as a multidimensional decomposition and correlation filtering being decomposed into a sequence of simpler filters are two examples of this approach to transform processing.
Early solutions to performing this type of transform processing fell into two classes. First, for high speed real time processing, dedicated signal processing hardware was designed. It had the attributes of the highest speed and smallest volume but the drawbacks of having no algorithm flexibility and high initial design cost because a new implementation was required to perform each new function. At the other extreme, general purpose computers were programmed to perform signal processing tasks in a non-real time laboratory environment when speed and size were not at issue. This provided the flexibility of general purpose processing with only modifications to operational software. However, the approach severely compromised the speed and size characteristics of the hardware and required a complex software development system to fully utilize the inherent flexibility.
In recent years the programmable signal processor has been developed as a compromise to these two architectural extremes. These devices are centered around a multiply-accumulator that is accessed by a general purpose microprocessor for higher computational capability than what is available from a general purpose computer and more flexibility than a special purpose processor. These processors still require the complexity of a software development system to take advantage of the microprocessor's flexibility. They also require the hardware complexity of a dedicated multiplier which is costly in size, power and price and is inactive for a significant percentage of transform computations such as Fourier, Walsh, Hadamard and Haar. This leads to under utilization of computational resources and therefore inefficient processing. These systems also generally fail to address the need for efficient nonlinear operations such as limiting, thresholding and logarithmic processing.